<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>文章列表</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/iconfont.css">
    <link rel="stylesheet" href="css/main.css">
    <!-- jq -->
    <script src="./libs/jquery-1.12.4.min.js"></script>
    <!-- 模板引擎 -->
    <script src="./libs/template-web.js"></script>
    <!-- 引入日期插件文件 -->
    <script src="./libs/jedate/js/jedate.js"></script>
    <!-- 引入日期插件文件 -->
    <link rel="stylesheet" href="./libs/jedate/css/jedate.css">
    <link rel="stylesheet" href="./libs/jedate/css/jeDate-test.css">
    <!-- 日期插件的网址 -->
    <!-- http://www.jemui.com/uidoc/jedate.html#theme -->
    <!-- http://www.jemui.com/uidoc/test/jedate-test.html -->

    <!-- 引入富文本插件文件 -->
    <script src="./libs/wangEditor/wangEditor.js"></script>
    <!-- 富文本插件网址 -->
    <!-- https://www.wangeditor.com/doc/pages/01-%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8/01-%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8.html -->
</head>

<body>
    <div class="container-fluid">
        <div class="common_title">
            文章编辑
        </div>
        <div class="container-fluid common_con">
            <form class="form-horizontal article_form" id="form">
                <div class="form-group">
                    <label for="inputTitle" class="col-sm-2 control-label">文章标题：</label>
                    <div class="col-sm-10">
                        <input type="text" name="title" class="form-control title" id="inputTitle" value="文章标题文字">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCover" class="col-sm-2 control-label">文章封面：</label>
                    <div class="col-sm-10">
                        <img src="" class="article_cover">
                        <input name="cover" type="file" id="inputCover">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCategory" class="col-sm-2 control-label">文章类别：</label>
                    <div class="col-sm-4">
                        <select class="form-control category" name="categoryId">
                            <option>类别一</option>
                            <option>类别二</option>
                            <option>类别三</option>
                            <option selected>类别四</option>
                            <option>类别五</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-2 control-label">发布时间：</label>
                    <div class="col-sm-4">
                        <div class="jeinpbox">
                            <input type="text" class="jeinput" id="testico" placeholder="YYYY-MM-DD" name="date">
                            <div class="icons jebtns"></div>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputEmail3" class="col-sm-2 control-label">文章内容：</label>
                    <div class="col-sm-10">
                        <div id="editor">
                            <p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-success btn-edit">修改</button>
                        <button type="submit" class="btn btn-default btn-draft">存为草稿</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</body>

</html>
<script src="./libs/https.js"></script>
<script>

    $(function(){
        // 1.获得跳转到文章列表页面时携带的文章id值
        let articleId = window.location.search.split('=')[1];
        // console.log(articleId);

        // 1.发起ajax请求，获得文章类别，渲染页面结构
        $.ajax({
            type: 'get',
            url: BigNew.category_list,
            success: function (backData) {
                // console.log(backData);
                if (backData.code == 200) {
                    let htmlStr = '';
                    $.each(backData.data, function (index, value) {
                        htmlStr += `
                            <option value='${value.id}'>${value.name}</option>
                            `
                    })
                    $('.category').html(htmlStr)
                }
            }
        })

        // 2.设置图片预览功能
        $('#inputCover').on('change', function () {
            let picData = this.files[0]; // 获得文件的数据
            // console.log(this.files);
            // input元素的files属性返回FileList。假设this是输入元素，this.files[0]会在索引0返回File object。
            let picUrl = URL.createObjectURL(picData); // 获得文件的url地址
            // console.log(picUrl);
            $('.article_cover').attr('src', picUrl)
        })

        // 3.调用日期插件，启动方法
        $('.jebtns').on('click', function () {
            jeDate('#testico', {
                trigger: false,
                format: 'YYYY-MM-DD', // 设置插件的风格
                theme: {
                    bgcolor: "#D91600",
                    pnColor: "#FF6653"
                }, // 设置插件的颜色
                zIndex: 10001 // 因为富文本的zIndex(层级)是10000，日期插件的层级是2099，打开日期插件时会被富文本覆盖
            })
        })

        // 4.调用富文本插件代码
        const E = window.wangEditor
        const editor = new E('#editor')
        // 或者 const editor = new E( document.getElementById('editor') )
        editor.create()

        // 5.根据文章id获得指定的文章数据，再渲染结构
        $.ajax(
            {
                type:'get',
                url:BigNew.article_search,
                data: {
                    id:articleId
                },
                success: function (backData) {
                    console.log(backData);
                    if(backData.code == 200){
                        $('#inputTitle').val(backData.data.title);
                        $('#category').val(backData.data.categoryId);
                        $('#testico').val(backData.data.date);
                        $('.article_cover').attr('src',backData.data.cover);
                        editor.txt.html(backData.data.content)

                    }
                }
            }
        )

        // 6.封装函数 ：保存需要发表文章的数据
        function saveData(state){ // state代表当前的文章状态
            // 获得文章的数据
            // 利用formData对象来获得文章数据
            // 注意 ：控件的name值必须和接口参数保持一致
            let fd = new FormData(document.querySelector('form'));
            // 此时只获得了title、cover、categoryId和data
            // 需要手动添加content和state对应的数据
            fd.append('id',articleId)
            fd.append('content',editor.txt.html()); // 获得富文本容器的内容，添加到fd对象中（嗲有标签的数据）
            fd.append('state',state); // 有形参传入
            

            console.log(fd.get('id'));
            console.log(fd.get('title'));
            console.log(fd.get('cover'));
            console.log(fd.get('date'));
            console.log(fd.get('categoryId'));
            console.log(fd.get('content'));
            console.log(fd.get('state'));

            // 根据获得的数据发起ajax请求，
            $.ajax({
                type:'post',
                url:BigNew.article_edit,
                data:fd, // 每一个选项都要填
                contentType:false,
                processData:false,
                success: function (backData) {
                    // console.log(backData);
                    if(backData.code == 200){
                        alert(backData.msg);
                        // 跳转到文章列表页面
                        window.location = './article_list(文章列表).html';
                        // 必须用live server插件打开
                    }
                }
            })
        }


        // 7.给发布/草稿按钮注册点击事件
        $('.btn-edit').on('click',function(e){
            e.preventDefault(); // 阻止默认效果（跳转）
            saveData('已发布');
        })
        $('.btn-draft').on('click',function(e){
            e.preventDefault(); // 阻止默认效果（跳转）
            saveData('草稿');
        })

    })

</script>